<?php
class GestorDeAsistenciaImpl extends GestorDeAsistencia {

   public function encontrarAnnosTodos(Unidad $unidad){
   	return $this->dao->encontrarAnnosTodos($unidad);
   }

   public function encontrarFechasTodos(Unidad $unidad, $anno = 2009){
      $fechas = array();

      //Necesito armar los objetos fechas - Indicando que fechas hay registradas de asistencia.
      //Para ello voy a pedirle al dao con un criterio de búsqueda de fecha única.

      $criterioDeBusqueda = new CriterioDeBusqueda();
      $criterioDeBusqueda->agregarUnico('asistencia.fecha');
      $criterioDeBusqueda->agregarOrden('asistencia.fecha','DESC');
      $fechas = $this->dao->encontrarTodos($unidad,$criterioDeBusqueda);
      $criterioDeBusqueda = null;

      //Necesito devolver un Map
      $fechasMap = array();
      foreach($fechas as $fecha){
         $fechasMap[$fecha->getFecha()]['item'] = $fecha;
         $criterioDeBusqueda = new CriterioDeBusqueda();
      	 $criterioDeBusqueda->agregar('asistencia.fecha',$fecha->getFecha());
         $fechasMap[$fecha->getFecha()]['total'] = $this->dao->encontrarTodos($unidad,$criterioDeBusqueda)->count();
         $criterioDeBusqueda = null;
      }


      return $fechasMap;
   }

   public function encontrarTodos(Unidad $unidad, CriterioDeBusqueda $criterioDeBusqueda){
      return $this->dao->encontrarTodos($unidad,$criterioDeBusqueda);
   }

   /**
    * Solo borra si la persona está en la unidad actualmente para no perder registros.
    *
    *
    */
   public function borrar(Asistencia $asistencia){
  	   $estadoUnidadPersona = new UnidadActual();
	   if ($asistencia->getUnidadPersona()->get('estado_unidad_persona_id') == $estadoUnidadPersona->getDiscriminador()) {
           $this->dao->borrar($asistencia);
	   } else {
			//DO NOTHING.
	   }
	   $estadoUnidadPersona = null;
   }

}
?>